Codeforces922 D.Nastya and a Game

给一个$n$ 个数的序列和一个定值 $k$ ,定义一个连续的子序列的乘积为 $ p $ ,和为 $s$ ,问满足$\frac{P}{S} = k $ 连续的子序列数量 $( 1 ≤ n ≤ 2·10^5, 1 ≤ k ≤ 10^5 ,a_i ≤ 10^8) $


题解

题意即为:
$$
\prod_{x=i} ^ {j} a_x = k \sum_{x=i} ^ {j} a_x
$$

直接可以观察到 $ k \sum_{x=i} ^ {j} a_x ≤ 2·10^{18} $ 是小于$long long $,连乘的话 $ 2^{64} ≈ long long$ (没有乘 $1$ ),故处理一下$1$的麻烦即可,直接暴力每个位置即可,处理的方法不难看出,每个$1$都会等式右边增加 $k$ , 故直接把所有连续的$1$的看成一个整体即可,直接暴力,但发现需要处理每个$1$右端可以延伸的最右的位置,倒着一次 $dp$ 即可